package cn.cdeden.resource.api.domain;

import cn.cdeden.common.oss.annotation.SystemModule;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.*;

/**
 * @ProjectName : ecm_hou
 * @Package : com.cdyd.ecm.modules
 * @ClassName : Tree
 * @Author : Yu.
 * @Description : //  es 文件夹数据上传
 * @Date : 2022/10/26 11:23
 * @Version : 1.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RemoteEsFilesTree implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 文件id
     */
    private Long id;


    /**
     * 团队编号
     */
    private String teamId;

    /**
     * 团队名称
     */
    private String teamName;


    /**
     * 上级的编号,暂时 在个人文档中有这字段
     */
    private String superiorsIds;


    /**
     * 父亲节点编号
     */
    private String parentId;

    /**
     * 真实文件名
     */
    private String realName;


    /**
     * 文件后缀
     */
    private String suffix;

    /**
     * 文件类型
     */
    private String type;

    /**
     * 文件储存的id
     */
    private String storageId;

    /**
     * 文件大小
     */
    private Long size;

    /**
     * 库类型
     */
    @SystemModule //后端 添加类型
    @NotNull(message = "库类型")
    private String  libraryType;

    /**
     *  版本编号
     **/
    private String versionId;

    /**
     *  版本名称
     **/
    private String versionName;

    /**
     * 创建者
     */
    private Long createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新者
     */
    private Long updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;


    /**
     * es id
     */
    private String esId;



    /**
     * 哪些用户拥有该文件
     */
    private List<String> userIdList;

    /**
     * 哪些角色拥有该文件
     */
    private List<String> roleIdList;

    /**
     * 哪些部门拥有该文件
     */
    private List<String> deptIdList;

    /**
     * 哪些岗位拥有该文件
     */
    private List<String> postIdList;




}
